*****************************************************
*****                                      **********
*****               OUTRUN CPC             **********
*****      comment personnaliser la route  **********
*****                F.L 2014              ********** 
*****        http://outruncpc.free.fr      **********
*****                                      **********
*****************************************************


voici comment fonctionne la route du jeu et ensuite comment on peut la modifier :

1. ***********fonctionnement de la route**********
a l'ecran, la route n'est qu'une suite de lignes horizontales affiches du bas de l'ecran (199) jusqu'a l'horizon (134)
dans Outrun, il y a en fait deux routes, de 3 voies chacunes
la route A est la route de gauche et B celle de droite
quand il n'y a que trois voies, la route B est cache derrire la route A
chaque route est en fait constitue de deux demi-lignes qui partent de chaque cot d'une ligne verticale invisible(XrouteA pour la routeA et XrouteB pour la routeB)
suivant l'eloignement, chaque demi-ligne affiche est reduite en largeur pour donner une impression d'eloignement.
pour simuler un virage, les lignes verticales XrouteA et XrouteB se courbent dans le meme sens.
pour simuler un changement de direction, XrouteA et XrouteB se courbent en sens oppos.

a chaque fois qu'elle est affiche ,chaque ligne de route change de couleur suivant sa hauteur(par exemple gris clair ou gris fonce)
ces lignes colores deviennent des bandes plus ou moins hautes suivant leur hauteur pour donner une impression de perspective.
chaque bande de couleur est numrote. il y en a 3974
ces bandes sont le fichier route.txt
dans ce fichier, il y a tous les renseignements pour l'affichage de ces bandes et donc,de la route
(distance entre les routes A et B, inclinaison des routes, objets, adversaires,etc...)

le programme charge en memoire toutes les 3974 lignes pendant l'ecran titre.
au depart du jeu, les 5 premieres bandes sont deja affiches, puis elles seront affiche progressivement suivant la vitesse de la voiture


2. ***********ordre de passage des stages***********
dans Outrun, il y a 5 routes A,B,C,D,E
chaque route est divise en 5 stage

voici dans quel ordre sont les stage de chaque route et leurs numros de lignes correspondant
(voir le dessin fourni)

route A :
  stage 1  >   stage 2  >   stage 3     >   stage 4    >   stage 5     >  stage 50
 (6-235)   >  (237-481) >  (483-717)    >  (719-963)   >  (965-1239) 

route B :
 stage 1   >  stage 6    >   stage 7    >   stage 8    >   stage 9     >  stage 90 
 (6-235)   > (1240-1505) >  (1507-1772) >  (1774-1980) >  (1982-2257)

route C :
 stage 1   >   stage 6   >   stage 10   >   stage 11   >   stage 12    >  stage 120 
 (6-235)   > (1240-1505) >  (2306-2509) >  (2511-2760) >  (2762-3047)

route D :
 stage 1   >   stage 6   >   stage 10   >   stage 13   >   stage 14    >  stage 140  
 (6-235)   > (1240-1505) >  (2306-2569) >  (3049-3308) >  (3310-3584)

route E :
 stage 1   >  stage 6    >   stage 10   >   stage 13   >   stage 15    >  stage 150 
 (6-235)   > (1240-1505) >  (2306-2569) >  (3105-3370) >  (3586-3878)

les stages 50,150,etc... sont les fins de route. 
ce sont juste des reperes pour le programme, ils n'ont pas de No de lignes specifiques

tous les debuts et fin de secteurs sont connus par le programme 
dans les variables fin1 et debut1 (exemple pour le secteur 1).
ces variables peuvent etre modifies pour changer la longeur d'un stage, mais ralonger un stage diminuera le suivant (et inversement)
attention, on ne peut pas rajouter de nouvelles bandes sans modifier le code du jeu.


les embranchements sont toujours les memes lignes qui re-apparaissent  chaque fois
le choix de la speciale est choisi ensuite par le programme

les fins de route sont aussi ces memes embranchements, qui tournent obligatoirement  gauche.

debut d'embranchement : 3880
route de gauche = 3891 > 3931
route de droite = 3934 > 3973


3. **********personnaliser la route ************

chacune des bandes de route est constitue de 19 variables, les voici dans l'ordre de lecture du programme (de gauche  droite) :

********numerobande 
info interne au fichier txt pour reperer le numro de chaque bande
le programme reconnaitra la bande avec la variable KMS. ***********a ne jamais modifier*******

********virage
pour faire prendre une inclinaison a la route (un virage)
pour que le virage se fasse, cette variable depend des deux autres variables DDXA et DDXB 
0 route droite
1 debut d'inclinaison
2 fin d'inclinaison
pour que le virage soit complet, en gnral il faut crerr le virage sur 10 bandes
puis la remonte est plus rapide. elle se fera sur 7-8 bandes suivant son inclinaison.

********DDXA et DDXB
gere le degr d'inclinaison du virage
DDXA est le degr de la route de gauche et DDXB pour la route de droite
0 inactif
-.1 virage leger  gauche
-.2 virage srr  gauche
.1 virage leger  droite
.2 virage srr  droite

********decalageroute 
gere l'ecartement entre la route de gauche et la route de droite
0 inactif
1 retrecissement
2 elargissement
quand on modifie cette variable, il faut aussi modifier la variable suivante.(decalageroute)

dans la case de cette variable, j'ai aussi rajout des chiffres qui n'ont aucun rapport
ce sont des reperes visuels pour reperer la fin d'un secteur et d'une route
par exemple : 101 pour la fin de la route 1, 102 pour la fin de la route 2
1001 pour la fin de la route A, 1002 pour la fin de la route B

********decalage 
le decalage maxi entre les deux routes.
ne sera lu que si decalageroute est actif
voici les differents decalages :
360 deux routes separes par un terre plein central
223 une route a 6 voie
70 une route a 5 voies
-80 une route a 4 voies
-226 une route seule (3 voies)
attention, quand on modifie le decalage des routes, il faut aussi modifier les deux variables
limitedroite et limitegauche

********limitedroite
c'est la position maxi de la voiture  droite
au dela de cette limite, la voiture aura soit un accident, soit sera ralentie
quand la route se retrecit ou s'agrandit, il faut augmenter ou diminuer
progressivement cette variable
voici les differents limites :
-876 deux route avec un terre plein
-742 une route  6 voies
-600 une route  5 voies
-450 une route  4 voies
-306 une route  3 voies

********limitegauche
pareil que limitedroite, mais  gauche
282 est la limite normale. on modifie cette variable uniquement lors des croisements
de route, quand la voiture prend la voie de droite 


********montee
gere le niveau de l'horizon pour simuler une montee ou descente de la route
0 horizon normal. il revient progressivement  son emplacement normal apres une modification
1 l'horizon suit les variations de la ligne de bosse
2 sommet de bosse forc, pour les virages en aveugle. horizon maxi a 164
quand on modifie cette variable, 
il faut aussi modifier Ydecor  170 pour cacher le decor derrire la route

********Ydecor
hauteur d'affichage du decor. 
la hauteur normale est de 134
quand il y a des sommets, la hauteur est de 170 . (pour cacher le decor sous la route)

********objetG,objetM,objetD
position des objets en bord de route
objetG pour les objets  gauche
objetM pour les objets au milieu (dans le cas des deux routes separes par un terre-plein central)
objetD pour les objets  droite
0 rien
1 objet prsent

********objet1,objet2,objet3
le chiffre objet 1,2,3 represente le sprite qui sera affich si un objet est prsent
aux positions objetG,objetM,objetD
voici les correspondances :
10 palmier
20 mini-palmier
30 maison
40 panneau
50 checkpoint
60 panneau de croisement
70 pilier
80 arche (seulement affichable  gauche)
90 buisson
100 rocher
110 arbre mort
120 souche
130 pin

********autoA,autoB,autoC
affichage des autos concurrentes. 3 autos possibles simultanment
chaque variables correspond au sprite  afficher et  sa position
le premier chiffre represente le sprite  afficher
le deuxieme chiffre represente sa position
voici les correspondances des sprites :
0 inactif
1 coccinelle
2 camion
3 corvette
4 jeep
5 mercedes
voici les positions : 
0 pas de concurrent
1 voie de gauche route A
2 voie du milieu route A
3 voie de droite route A
4 voie de gauche route B
5 voie du milieu route B
6 voie de droite route B
exemples:
le chiffre 21 affichera un camion  gauche de la route A
le chiffre 24 affichera un camion  gauche de la route B


